package com.dk.controller;

import com.dk.pojo.Person;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class Home {
    public static void main(String[] args) {
//        List<String> list=new ArrayList<>();
//        list.add("宫本武藏");
//        list.add("宋公明");
//        list.add("苏有朋");
//        list.add("石头人");
//        list.add("时传祥");
//        list.add("李耳");
//        list.add("宋志乾");
//        list.add("洪七公");
//        list.stream().filter(a->a.length()==3).limit(3).forEach(System.out::println);
//        List<String> list1=new ArrayList<>();
//        list1.add("帕瓦罗蒂");
//        list1.add("张三丰");
//        list1.add("赵薇薇");
//        list1.add("张自忠");
//        list1.add("孛儿只斤铁木真");
//        list1.add("张天爱");
//        list1.add("张翠花");
//        list1.stream().filter(a->a.startsWith("张")).skip(2).forEach(System.out::println);
//        List<Person> array=new ArrayList<>();
        List<Person> team1 = new ArrayList<>();
        team1.add(new Person("宫本武藏"));
        team1.add(new Person("宋公明"));
        team1.add(new Person("苏有朋"));
        team1.add(new Person("石头人"));
        team1.add(new Person("时传祥"));
        team1.add(new Person("李耳"));
        team1.add(new Person("庄子"));
        team1.add(new Person("洪七公"));

        List<Person> team2 = new ArrayList<>();
        team2.add(new Person("帕瓦罗蒂"));
        team2.add(new Person("张三疯"));
        team2.add(new Person("赵薇薇"));
        team2.add(new Person("张自忠"));
        team2.add(new Person("孛儿只斤铁木真"));
        team2.add(new Person("张天爱"));
        team2.add(new Person("张翠花"));

        // 第一个队伍只要名字为3个字的成员姓名，保留前三个人
        List<Person> filteredTeam1 = team1.stream().filter(p -> p.getName().length() == 3).limit(3).collect(Collectors.toList());

        // 第二个队伍只要姓张的，并且去掉前两个人
        List<Person> filteredTeam2 = team2.stream().filter(p -> p.getName().startsWith("张")).skip(2).collect(Collectors.toList());
        // 将两个队伍合并成一个队伍
        List<Person> mergedTeam = new ArrayList<>();
        mergedTeam.addAll(filteredTeam1);
        mergedTeam.addAll(filteredTeam2);

        // 打印合并后的队伍
        mergedTeam.forEach(System.out::println);

    }
}
